package com.sxhalo.manage.service;

import java.util.List;

import com.sxhalo.manage.utils.Pager;

public interface IBaseService<T> {
	/**
	 * 新增对象.
	 */
	public void save(T entity);

	/**
	 * 修改对象.
	 */
	public void update(T entity);

	/**
	 * 删除对象.
	 */
	public Boolean delete(T entity);

	/**
	 * 通过id删除对象.
	 */
	public Boolean delete(Integer id);
	
	/**
	 * 通过id删除对象.
	 */
	public void service();

	/**
	 * 按id获取对象.
	 */
	public T findById(Object id);

	/**
	 * 按属性查找唯一对象,匹配方式为相等.
	 */
	public T find(String fieldName, Object fieldValue);

	/**
	 * 按属性查找对象列表,匹配方式为相等.
	 */
	public List<T> findList(String fieldName, Object fieldValue);
	
	/**
	 * 按对象样例获取对象列表.
	 */
	public List<T> findByExample(Object instance);
	
	/**
	 * 获取全部对象.
	 */
	public List<T> findAll();

	/**
	 * 按id列表获取对象.
	 */
	public List<T> findListByIds(List<String> idList);

	/**
	 * 分页查询.
	 */
	public Pager<T> findPagerList(int pageNumber, int pageSize,
			String whereStr, String orderStr);

}
